<?php
class usuario
{
	private $tpl;
	
	public function __construct($tpl)
	{
		$this->tpl = & $tpl;
		
	}
	public function condition()
	{
		return array(
			'register' => !XAUTH::$user->registered(),
			'add_information' => XAUTH::$user->registered()
		);
	}
	public function add_information()
	{
		$this->tpl->set('TITLE' , 'Agregar informacion del usuario');
		if(!empty($_POST['field']))
		{
			$F = &$_POST['field'];
			$F['usuarios_id'] = XAUTH::$user->usuarios_id;
			if(DB::select('usuarios_informacion','usuarios_id','WHERE usuarios_id=?')->set(XAUTH::$user->usuarios_id)->rowCount() < 1)
			{
				if(DB::insert('usuarios_informacion','usuarios_id,first_name,last_name')->set($F)->rowCount()>0)
				{
					return "datos guardaos satisfactoriamente";
				}
			}
			else
			{
				if(DB::update('usuarios_informacion','usuarios_id,first_name,last_name','WHERE usuarios_id=:usuarios_id')->set($F)->rowCount()>0)
				{
					return "datos actualizados satisfactoriamente";
				}
			}
		}
		$this->tpl->parse('usuario/add_information');
		$this->tpl->assigns(DB::select('usuarios_informacion','*','WHERE usuarios_id=?')->set(XAUTH::$user->usuarios_id)->fetch(DB::FETCH_ASSOC));
		return $this->tpl->render();
	}
	public function register()
	{
		$this->tpl->set('TITLE' , 'registro de nuevo usuario');
		extract($this->tpl->parse('usuario/register')->scope('MSG') ,EXTR_REFS);
		
		if(isset($_POST) && !empty($_POST['field']))
		{
			$F = &$_POST['field'];
			//buscamos si el email ya existe en nuestra base de datos
			if(DB::select('usuarios','usuarios_id','WHERE email=?')->set($F['email'])->rowCount() > 0)
			{
				$MSG = 'el email ya esta siendo usado';
			}
			else
			{
				$validacion = new validatePHP($F);
				$mensajes = new validatePHP_data_msg(validatePHP_data_msg::LANG_ESPANISH);
				$validacion->setErrorMsgs($mensajes);
				$validacion->data("email","Email")->required->notEmpty->email->length(5,127);
				$validacion->data("password","contraseña")->required->equal($F['pass2'],'segundo campo de password')->length(3,25);
				if($validacion->success())
				{
					//$MSG = "todo perfecto" . $validacion->getData("dato3","aaaaaa");
				}
				else{
					//var_dump($validacion->getAllErrorMsgs());
					//$MSG = implode("<br />\n",$validacion->getAllErrorMsgs()->getarraycopy());
					$MSG = $validacion->getAllErrorMsgs();
				}
			}
			if(
				DB::insert('usuarios',array(
					"email",'password','role'
				))->set(array(
					"email"=>$F['email'],'password'=>$F['password'],'role' => 'user'
				))->rowCount() > 0
			)
			{
				$this->tpl->render();
				return "Su usuario fue satisfactoriamente agregado, en breve recivira un correo electronico";
			}
			else
			{
				
			}/**/
		}
		return $this->tpl->render();
	}
}